﻿namespace SuperModel.BehaviorModel
{
    using Castle.Core.Interceptor;

    /// <summary>
    /// Interface for a Property Set Filter
    /// </summary>
    public interface IPropertySetFilter : IPropertyInterceptor
    {
        /// <summary>
        /// Executes an Action with reference to an invocation of the property getter
        /// </summary>
        /// <param name="invocation">
        /// The invocation.
        /// </param>
        /// <param name="propertyName">
        /// The property name.
        /// </param>
        /// <returns>
        /// A value indicating whether or not to continue with the property set.
        /// </returns>
        bool Execute(IInvocation invocation, string propertyName);
    }
}